package vcp.entity;

import java.io.Serializable;
import java.util.List;

import org.joda.time.DateTime;

import vcp.enums.SiteEnum;
import vcp.enums.SubscriptionType;

/**
 * <p>
 * subscription class , includes getters and setters
 * </p>
 * 
 * @author VCP team
 * 
 */
public class Subscription implements Serializable
{

	/**
	 * 
	 */
	private static final long serialVersionUID = 3938020893029597851L;

	private int subscribtionID;

	/**
	 * getter
	 * 
	 * @return subscription id
	 */
	public int getSubscribtionID()
	{
		return this.subscribtionID;
	}

	/**
	 * setter
	 * 
	 * @param subscribtionID
	 */
	public void setSubscribtionID(int subscribtionID)
	{
		this.subscribtionID = subscribtionID;
	}

	private SubscriptionType subscriptionType;

	/**
	 * getter
	 * 
	 * @return subscription type
	 */
	public SubscriptionType getSubscriptionType()
	{
		return this.subscriptionType;
	}

	/**
	 * setter
	 * 
	 * @param subscriptionType
	 */
	public void setSubscriptionType(SubscriptionType subscriptionType)
	{
		this.subscriptionType = subscriptionType;
	}

	private int customerID;

	/**
	 * getter
	 * 
	 * @return customer id
	 */
	public int getCustomerID()
	{
		return this.customerID;
	}

	/**
	 * setter
	 * 
	 * @param customerID
	 */
	public void setCustomerID(int customerID)
	{
		this.customerID = customerID;
	}

	private SiteEnum site;

	/**
	 * getter
	 * 
	 * @return site
	 */
	public SiteEnum getSite()
	{
		return this.site;
	}

	/**
	 * setter
	 * 
	 * @param site
	 */
	public void setSite(SiteEnum site)
	{
		this.site = site;
	}

	private List<Car> cars;

	/**
	 * getter
	 * 
	 * @return list of cars
	 */
	public List<Car> getCars()
	{
		return this.cars;
	}

	/**
	 * setter
	 * 
	 * @param cars
	 */
	public void setCars(List<Car> cars)
	{
		this.cars = cars;
	}

	private DateTime startDate;

	/**
	 * getter
	 * 
	 * @return start date
	 */
	public DateTime getStartDate()
	{
		return this.startDate;
	}

	/**
	 * setter
	 * 
	 * @param startDate
	 */
	public void setStartDate(DateTime startDate)
	{
		this.startDate = startDate;
	}

	private DateTime estimatedLeaveDate;

	/**
	 * getter
	 * 
	 * @return estimated leave date
	 */
	public DateTime getEstimatedLeaveDate()
	{
		return this.estimatedLeaveDate;
	}

	/**
	 * setter
	 * 
	 * @param estimatedLeaveDate
	 */
	public void setEstimatedLeaveDate(DateTime estimatedLeaveDate)
	{
		this.estimatedLeaveDate = estimatedLeaveDate;
	}

	private DateTime endDate;

	/**
	 * getter
	 * 
	 * @return end date
	 */
	public DateTime getEndDate()
	{
		return this.endDate;
	}

	/**
	 * setter
	 * 
	 * @param endDate
	 */
	public void setEndDate(DateTime endDate)
	{
		this.endDate = endDate;
	}

	private DateTime arrivalDate;

	/**
	 * getter
	 * 
	 * @return arrival date
	 */
	public DateTime getArrivalDate()
	{
		return this.arrivalDate;
	}

	/**
	 * setter
	 * 
	 * @param arrivalDate
	 */
	public void setArrivalDate(DateTime arrivalDate)
	{
		this.arrivalDate = arrivalDate;
	}

	private boolean isDeleted;

	public boolean isDeleted()
	{
		return this.isDeleted;
	}

	public void setDeleted(boolean isDeleted)
	{
		this.isDeleted = isDeleted;
	}

}
